home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / sparc / include / asm / sigcontext_64.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  2.0 KB  |  88 lines

  1. #ifndef __SPARC64_SIGCONTEXT_H
  2. #define __SPARC64_SIGCONTEXT_H
  3.  
  4. #ifdef __KERNEL__
  5. #include <asm/ptrace.h>
  6. #endif
  7.  
  8. #ifndef __ASSEMBLY__
  9.  
  10. #ifdef __KERNEL__
  11.  
  12. #define __SUNOS_MAXWIN   31
  13.  
  14. /* This is what SunOS does, so shall I unless we use new 32bit signals or rt signals. */
  15. struct sigcontext32 {
  16.     int sigc_onstack;      /* state to restore */
  17.     int sigc_mask;         /* sigmask to restore */
  18.     int sigc_sp;           /* stack pointer */
  19.     int sigc_pc;           /* program counter */
  20.     int sigc_npc;          /* next program counter */
  21.     int sigc_psr;          /* for condition codes etc */
  22.     int sigc_g1;           /* User uses these two registers */
  23.     int sigc_o0;           /* within the trampoline code. */
  24.  
  25.     /* Now comes information regarding the users window set
  26.      * at the time of the signal.
  27.      */
  28.     int sigc_oswins;       /* outstanding windows */
  29.  
  30.     /* stack ptrs for each regwin buf */
  31.     unsigned sigc_spbuf[__SUNOS_MAXWIN];
  32.  
  33.     /* Windows to restore after signal */
  34.     struct reg_window32 sigc_wbuf[__SUNOS_MAXWIN];
  35. };
  36.  
  37. #endif
  38.  
  39. #ifdef __KERNEL__
  40.  
  41. /* This is what we use for 32bit new non-rt signals. */
  42.  
  43. typedef struct {
  44.     struct {
  45.         unsigned int psr;
  46.         unsigned int pc;
  47.         unsigned int npc;
  48.         unsigned int y;
  49.         unsigned int u_regs[16]; /* globals and ins */
  50.     }            si_regs;
  51.     int            si_mask;
  52. } __siginfo32_t;
  53.  
  54. #endif
  55.  
  56. typedef struct {
  57.     unsigned   int si_float_regs [64];
  58.     unsigned   long si_fsr;
  59.     unsigned   long si_gsr;
  60.     unsigned   long si_fprs;
  61. } __siginfo_fpu_t;
  62.  
  63. /* This is what SunOS doesn't, so we have to write this alone
  64.    and do it properly. */
  65. struct sigcontext {
  66.     /* The size of this array has to match SI_MAX_SIZE from siginfo.h */
  67.     char            sigc_info[128];
  68.     struct {
  69.         unsigned long    u_regs[16]; /* globals and ins */
  70.         unsigned long    tstate;
  71.         unsigned long    tpc;
  72.         unsigned long    tnpc;
  73.         unsigned int    y;
  74.         unsigned int    fprs;
  75.     }            sigc_regs;
  76.     __siginfo_fpu_t *    sigc_fpu_save;
  77.     struct {
  78.         void    *    ss_sp;
  79.         int        ss_flags;
  80.         unsigned long    ss_size;
  81.     }            sigc_stack;
  82.     unsigned long        sigc_mask;
  83. };
  84.  
  85. #endif /* !(__ASSEMBLY__) */
  86.  
  87. #endif /* !(__SPARC64_SIGCONTEXT_H) */
  88.